1. Field of the Invention
The present invention relates to an information processing apparatus and method and a recording medium. In particular, the invention relates to an information processing apparatus and method and a recording medium which allow only programs that were developed by a legitimate program developer to be executed in a certain program execution environment.
2. Description of the Related Art
Java (trademark of Sun Microsystems, Inc. of the U.S.A.) now attracts much attention because it is suitable for the Internet, which has spread rapidly in recent years. The term xe2x80x9cJavaxe2x80x9d is used to refer to each of the Java language which is an object-oriented language, a virtual machine (hereinafter referred to as xe2x80x9cJava virtual machinexe2x80x9d where appropriate) that defines a processor architecture suitable for execution of a program (hereinafter referred to as xe2x80x9cJava programxe2x80x9d where appropriate) written in the Java language, and other elements relating to Java, or it is used as a generic term for them.
The term xe2x80x9cvirtual machinexe2x80x9d means a virtual machine that is assumed in implementing a language processing system rather than a virtual machine that is used to cause a single computer to virtually behave to users as if it were a plurality of computers.
A Java virtual machine is implemented on an actual (real) computer so as to operate on an OS (operating system) that is installed in the computer. On the other hand, a Java program is compiled into binary codes that are constituted of instruction sets of the Java virtual machine. The binary codes can be executed by any hardware in which the Java virtual machine can operate. Therefore, a complied Java program can be executed on various platforms as long as the Java virtual machine operates there.
Based on the fact that a Java program can be executed on any machine once a Java virtual machine is implemented, and other grounds, it is expected that the Java virtual machine will spread to many users and many application programs will be developed and distributed (irrespective of whether they have to be paid for or are free) to many such users.
Under the above circumstances, there may occur a case that a party who has developed and distributed a program execution environment such as a Java virtual machine wants to restrict the distribution of an application program that was developed by a third party and is executed in such a program execution environment; for example, the former party may want to permit distribution of application programs to only licensed parties.
On the other hand, in a Java virtual machine, intermediate codes called byte codes (Java codes) that are obtained by compiling a Java program with a Java compiler are interpreted and executed. Java byte codes can be understood relatively easily by decompiling those, which enables reverse engineering to be performed easily. Therefore, it is necessary to prevent copying and falsification by a third party.
The present invention has been made under the above circumstances, and an object to the invention is therefore to make it possible to restrict the execution of a program in a certain program execution environment as well as to prevent copying and falsification of a program.
The information processing apparatus according to the first aspect of the present invention comprises first key decoding means for decoding, by using a second key, an encrypted version of a first key that is necessary to decode an encrypted version of a program; program decoding means for decoding the encrypted version of the program by using the first key that is obtained through decoding by the first key decoding means; and executing means for executing the program that is output from the program decoding means.
The information processing method according to the second aspect of the present invention comprises the steps of decoding, by using a second key, an encrypted version of a first key that is necessary to decode an encrypted version of a program; decoding the encrypted version of the program by using the first key that is obtained through the decoding; and executing the program that is obtained by the decoding.
The recording medium according to the third aspect of the present invention is a recording medium on which a program is recorded, the program being for causing a computer to decode, by using a second key, an encrypted version of a first key that is necessary to decode an encrypted version of a program; decode the encrypted version of the program by using the first key that is obtained through the decoding; and execute the program that is obtained by the decoding.
The information processing apparatus according to the fourth aspect of the present invention comprises encrypting means for encrypting a program into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention.
The information processing method according to the fifth aspect of the present invention comprises the step of encrypting a program into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention.
The recording medium according to the sixth aspect of the present invention is a recording medium on which a program is recorded, the program being encrypted into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention.
The information processing apparatus according to the seventh aspect of the present invention comprises executing means for executing a program; key decoding means for decoding, by using a second key, an encrypted version of a first key to be used in checking a signature that is added to the program; checking means for checking, by using the first key that is obtained through decoding by the key decoding means, whether the signature that is added to the program is legitimate; and supplying means for supplying the executing means with the program that has been affirmed to be legitimate by the checking means and to which the signature is added.
The information processing method according to the eighth aspect of the present invention comprises the steps of decoding, by using a second key, an encrypted version of a first key to be used in checking a signature that is added to a program; checking, by using the first key that is obtained through the decoding, whether the signature that is added to the program is legitimate; and executing the program only when it is affirmed to be legitimate.
The recording medium according to the ninth aspect of the present invention is a recording medium on which a program is recorded, the program being for causing a computer to decode, by using a second key, an encrypted version of a first key to be used in checking a signature that is added to a program; check, by using the first key that is obtained through the decoding, whether the signature that is added to the program is legitimate; and execute the program only when it is affirmed to be legitimate.
The information processing apparatus according to the tenth aspect of the present invention comprises processing means for processing a program so that a signature will be confirmed to be legitimate in the information processing apparatus according to the seventh aspect of the present invention.
The information processing method according to the eleventh aspect of the present invention comprises the step of processing a program so that a signature will be confirmed to be legitimate in the information processing apparatus according to the seventh aspect of the present invention.
The recording medium according to the twelfth aspect of the present invention is a recording medium on which a program is recorded, the program having been processed so that a signature will be confirmed to be legitimate in the information processing apparatus according to the seventh aspect of the present invention.
In the information processing apparatus according to the first aspect of the present invention, the first key decoding means decodes, by using a second key, an encrypted version of a first key that is necessary to decode an encrypted version of a program, and the program decoding means decodes the encrypted version of the program by using the first key that is obtained through decoding by the first key decoding means. The executing means executes the program that is output from the program decoding means.
In the information processing method according to the second aspect of the present invention, an encrypted version of a first key that is necessary to decode an encrypted version of a program is decoded by using a second key, the encrypted version of the program is decoded by using the first key that is obtained through the decoding, and the program that is obtained by the decoding is executed.
On the recording medium according to the third aspect of the present invention, a program for causing a computer to decode, by using a second key, an encrypted version of a first key that is necessary to decode an encrypted version of a program, decode the encrypted version of the program by using the first key that is obtained through the decoding, and execute the program that is obtained by the decoding is recorded.
In the information processing apparatus according to the fourth aspect of the present invention, the encrypting means encrypts a program into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention.
In the information processing method according to the fifth aspect of the present invention, a program is encrypted into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention.
On the recording medium according to the sixth aspect of the present invention, a program being encrypted into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus according to the first aspect of the present invention is recorded.
In the information processing apparatus according to the seventh aspect of the present invention, the key decoding means decodes, by using a second key, an encrypted version of a first key to be used in checking a signature that is added to a program, and the checking means checks, by using the first key that is obtained through decoding by the key decoding means, whether the signature that is added to the program is legitimate. The supplying means supplies executing means with the program that has been affirmed to be legitimate by the checking means and to which the signature is added. The executing means executes the program.
In the information processing method according to the eighth aspect of the present invention, an encrypted version of a first key to be used in checking a signature that is added to a program is decoded by using a second key, it is checked, by using the first key that is obtained through the decoding, whether the signature that is added to the program is legitimate, and the program is executed only when it is confirmed to be legitimate.
On the recording medium according to the ninth aspect of the present invention, a program for causing a computer to decode, by using a second key, an encrypted version of a first key to be used in checking a signature that is added to a program, check, by using the first key that is obtained through the decoding, whether the signature that is added to the program is legitimate, and execute the program only when it is confirmed to be legitimate is recorded.
In the information processing apparatus according to the tenth aspect of the present invention, the processing means processes a program so that a signature will be confirmed to be legitimate in the information processing apparatus according to the seventh aspect of the present invention.
In the information processing method according to the eleventh aspect of the present invention, a program is processed so that a signature will be confirmed to be legitimate in the information processing apparatus according to the seventh aspect of the present invention.
On the recording medium according to the twelfth aspect of the present invention, a program having been processed so that a signature will be confirmed to be legitimate in the information processing apparatus according to according to the seventh aspect of the present invention is recorded.